docs(errata): PR1 of 2 — false-claim corrections from #4984 campaign errata - #5030
Merged
Conversation
This was referenced Aug 11, 2026
Six module headers expanded the `vd` prefix as "van-den-Berg". In this repository `vd` abbreviates vertex-disjoint: `vdCompatiblePolymerFamilies` is defined by filtering on `IsCompatiblePolymerFamilyVertexDisjoint` (`ClusterExpansion/Families/VertexDisjoint.lean`), and no van den Berg result is cited anywhere in the tree. Verified: `grep -rn "Berg" IsingModel/ docs/ README.md scripts/` returned these six lines before and returns nothing after. Comment-only. Refs #4987 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`freeEnergyAlongExhaustion_latticeGraph_eq_log_div_card` was documented as an "alternate form of `freeEnergyAlongExhaustion_eq_inv_card_mul_log` using the Fintype-card expression", but the lemma it names already uses `Fintype.card`, so no distinction is being drawn. The doc now records that the two conclusions are the same proposition and differ only in the ambient lemma delegated to, and points at `freeEnergyAlongExhaustion_latticeGraph_eq_inv_Λcard_mul_log` as the genuinely different cardinality spelling. Verified in Lean: `@..._eq_log_div_card = @..._eq_inv_card_mul_log := rfl` is accepted, at both the lattice-graph and the ambient layer. Comment-only; no declaration is added, removed or renamed. Refs #5000 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`correlationInfinite_le_const_mul_beta_of_high_temp` was documented as holding "For `0 ≤ J`, `1 ≤ d`, `0 < b` ...", but its binder telescope carries no `1 ≤ d`; the dimension bound is dropped from the prose. `freeEnergyComplex_continuousAt_real_pos_h_latticeGraph` was documented as continuity at "real positive `h₀`", but it takes `(h₀ : ℝ)` with no positivity hypothesis and holds at every real `h₀`. The headline is corrected and the mismatch with the `_pos_h_` in the name is recorded. Both telescopes read off `#check`. Comment-only; the names are left alone, since renaming is a separate decision. Refs #5002 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
correlation length Three sites asserted that `−log tanh(βJ)`, or a finite-region infimum of per-pair pseudo-masses, *is* the inverse correlation length. The tree proves only bounds: `latticeMass_le_neg_log_tanh_betaJ`, `latticeMass_two_sided_bound`, and `onAxisInverseCorrelationLength_le_neg_log_tanh` are all inequalities, and no equality with that rate exists anywhere. * `UnconditionalFiniteRegionLipschitz.lean` header: "faithful inverse-correlation-length rate" -> "direct-path rate", the name the neighbouring `LatticeMassHighTemperature/UpperBound.lean` already uses. * `finiteRegionPseudoMassDist`: the claim that the finite infimum "is the genuine inverse correlation length restricted to `A`" is replaced by the faithful-radius statement plus an explicit note that no relation to `latticeMass` is proved here. Measured at the merge base: the file sets mentioning `finiteRegionPseudoMassDist` (24) and `latticeMass` (85) intersect in zero files. * `docs/index.md` #4333 row: it simultaneously claimed the `hprofile` of #4330-#4332 "is now an unconditional theorem" and, in parentheses, that the theorem is at a different rate. The row now states that the unconditional bound does not discharge that binder -- `#check` shows the binder is `pseudoMassG α ρ (−log(βJ·2d))` at a fixed radius while the theorem is `pseudoMassG α (latticeDistance d x z) (−log tanh(βJ))` -- and names the rate-agnostic engine as what it does discharge. Lean changes are comment-only. `citation_audit.py` is unaffected: the findings/ratchet counts are identical with the merge base's `docs/index.md`. Refs #5005 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The docstring of `truncated4Infinite_J_zero_of_pairwise_distinct` called the closed form `-2·tanh(β·h)^4` "(non-vanishing)". `Ferromagnetic ⟨0,h,β⟩` only requires `0 ≤ h`, so `h = 0` is admissible and there the form is `0`. Replaced by the zero/nonzero split over the admissible range, matching the already-corrected sibling in `TwoPointTruncatedTrivialSlices.lean`. Both halves checked in Lean: `-2 * Real.tanh (β * 0) ^ 4 = 0`, and `-2 * Real.tanh (β * h) ^ 4 < 0` for `0 < h`, `0 < β`. The surrounding `-2·t⁴ ≤ 0` sentence was correct and is kept. Comment-only. Refs #5008 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`partitionFunctionAlongExhaustion_high_temp_expansion_h_zero_pow_two_lt_of_nonempty` was documented as holding "under nonempty volume". Its hypotheses are `0 < β * J` and `0 < |E|`; it takes no `(Λ.volume n).Nonempty`, unlike the `_of_nonempty` wrappers in `HighTemperatureBoundsRatioLogFeNonempty`, which do take it and convert it with `hne.card_pos`. The doc now names the hypotheses it actually has and records the divergence from its siblings. Telescope read off `#check`. Comment-only; the duplicate declaration itself is left in place. Refs #5011 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* `magnetizationΛ_ge_tanh`: "`|A|^1 = |A|.card = 1`" is not a well-formed identity. Replaced by the wording already used for the parallel `magnetizationInfinite_J_zero`: `A.card = 1`, so the power reduces to `tanh(β·h)` -- which is exactly what the proof's `Finset.card_singleton` rewrite does. * `correlationAlongExhaustion_J_zero_of_subset` and `correlationInfinite_J_zero` called the `J = 0` slice the "infinite-temperature slice". Infinite temperature is `β → 0`; `J = 0` is the non-interacting slice, and `β` is free in the first while the second requires `0 < β` through `Ferromagnetic`. Both now say what `MagnetizationInfinite/TrivialSlices.lean` already says. * `susceptibilityInfinite`: the doc asserted `|χ_Λ(i)| ≤ 2·|Λ|` as an available fact. No such bound exists in the tree (that string occurs nowhere else). Replaced by the provable point the sentence was making -- `susceptibility` sums `truncated2` over the volume, so the summand count grows with the stage and no stage-uniform bound is proved here. * `susceptibilityInfinite_le_abs_h`: cited `ciSup_le_ciSup`, which does not exist at this mathlib pin. The proof applies `ciSup_mono`. Comment-only. Refs #5017 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* `partitionFunctionΛ_high_temp_expansion_h_zero_closed_evenSubgraphs` carried an odd number of `**` markers, so its bold span did not close where it appeared to. Stray marker removed. * Declaration docs across `Analyticity*` use `pFE`, `vdSum` and `ε(t)` as if they named definitions. `vdPolymerFamilies_sum` and its `.erase ∅` variant have no definition at all -- they are written out in full in every statement -- and neither `pFE` nor `vdSum` is introduced anywhere. Each affected module header now carries the expansion and says these are prose shorthands rather than library names, extending the legend device the same headers already use for `Ξ` and `ε`. `AnalyticityLambdaMayerRecurrenceEpsilon` and `AnalyticityLambdaMayerPfeEdgeBounds` are unchanged: their headers already introduce `ε t` as a shorthand with no definition behind it, which is the only shorthand their declaration docs use. Comment-only. Refs #5019 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`partitionFunctionΛ_high_temp_expansion_h_zero_upper_bound` was documented as a "ℤ^d wrapper". `#check` shows it is stated for an arbitrary `G : SimpleGraph V` over an arbitrary `V` with `Λ : Finset V`; nothing in its signature or proof mentions `latticeGraph`, `cubicExhaustion` or any other ℤ^d construct. In the `AmbientLattice/` tree ℤ^d vocabulary is what has to be absent, since the layer is graph-generic and the specializations live downstream in `Concrete/`. Reworded to the form its siblings in the same file already use, naming the wrapped `IsingModel.partitionFunction_high_temp_expansion_h_zero_upper_bound`. The provenance token in the sentence is re-emitted unchanged. Comment-only. Refs #5022 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
difference is not a ratio * `freeEnergyInfinite_high_temp_h_zero_upper_bound_exp_uniform` was advertised as "globally tighter than `freeEnergyInfinite_le_uniform_upper_bound` at `h = 0` (the cosh-based bound)". Both claims are wrong. The right-hand sides are the same real number under this theorem's hypotheses -- `log 2 + |β|·(|J|·c + |0|) = log 2 + β·J·c` for `0 ≤ J`, `0 < β`, checked in Lean -- and the named lemma's conclusion contains no `Real.cosh` at all; `cosh` enters only through the lower bound used for coboundedness. * `freeEnergyInfinite_high_temp_h_zero_ratio_bound` and its `_beta_zero` companion are headlined as "ratio upper bound" while their conclusions bound a difference, which their own doc bodies display two lines below. Both headlines corrected, each noting that the `_ratio_bound` in the name does not describe the statement. Renames are a separate decision and are not made here. Comment-only. Refs #5026 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…unds do exist Round-1 review follow-up on this branch's own prose fixes. docs/index.md, the #4333 row: * the title asserted it discharges the section 17.5 `hprofile` while the body denied it; retitle to the direct-path rate and to the engine's ratio hypothesis, matching the body; * "never by an equality" was false: `latticeMass_one_eq_correlationMass` proves `latticeMass 1 (cubicExhaustion 1) = ofReal(correlationMass (beta*J))` with `correlationMass a = -log tanh a`. State the true shape: upper bounds only for general `d` (`latticeMass_le_neg_log_tanh_betaJ`, bundled in `latticeMass_two_sided_bound`, plus the sharper on-axis inequality), equality in `d = 1` only; * the `hprofile` binder is a fixed radius in #4330/#4331 but the pair distance in #4332; the rate, not the radius, is what separates them, so replace the hedge with the source module's own ruling that this bound is strictly weaker; * the rate-agnostic engine's `hratio` carries no rate; #4333 discharges the profile bound that supplies it. docs/index.md, the #4334 row: `hprofile` named two different objects in one row; the second occurrence is now described as the engine's ratio hypothesis. `MagnetizationInfiniteSusceptibility.lean`: the claim that no stage-uniform bound exists and that `susceptibility_nonneg` is the only sign/size fact is refuted by `susceptibilityAlongExhaustion_le_of_high_temp`, `susceptibilityAlongExhaustion_bddAbove_latticeGraph_of_high_temp` (which discharges the `BddAbove` hypothesis this same docstring points at) and `susceptibilityInfinite_J_zero`. Also align "grows" with the module header's "nondecreasing". `FiniteRegionPseudoMassDistContinuity.lean`: the global envelope reaches `latticeMass` from below with no constant (`globalPseudoMassDist_le_latticeMass`); only the reverse direction carries one. Terminology: "faithful" named the radius elsewhere in the tree but was also used for the tanh rate; the rate is now uniformly "direct-path" across `UnconditionalFiniteRegionLipschitz.lean`, `MassContinuityPairMassUpperIcc.lean` and their `docs/index.md` rows. Shorthand legends: cover `vdSum_tanh`, the parenthesised-activity forms and the section comments that use them, and introduce the forms in the two Mayer modules that used them without one. Comment-only in Lean; `lake build` clean. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ld bound is not an |h| bound Row 1901 (#4333) in docs/index.md compared the direct-path rate `-log tanh(betaJ)` with the Simon-Lieb rate `-log(betaJ*2d)` and concluded "strictly weaker, does not discharge" for all of #4330-#4332. A rate-only comparison closes only at a common radius, which is #4332's `latticeDistance d x z`. In #4330/#4331 the radius `rho` is a free variable, and `pseudoMassG a r t = 2*exp(-(t*r))/(1+(t*r)^a)` sees rate and radius only through the product `t*r`, so the theorem does supply their binder at every radius with `rho*(-log(betaJ*2d)) >= dist x z*(-log tanh(betaJ))` -- for instance at every `rho >= 2*dist x z`, where the criterion reads `(betaJ*2d)^2 <= tanh(betaJ)` and the window gives it with room to spare. The row now scopes the strict-weakening to #4332 and states the product criterion for the free-radius pair; the row title carries the matching "uniformly in its radius" qualifier. The source module `UnconditionalProfileLower.lean` already scoped this correctly. `AmbientLattice/MagnetizationInfiniteSusceptibility.lean` claimed that `susceptibilityAlongExhaustion_bddAbove_latticeGraph_of_high_temp` discharges the `BddAbove` hypothesis of `susceptibilityInfinite_le_abs_h`. The provider concludes `BddAbove` at `<J, 0, beta>` and the consumer asks for it at `<J, |h|, beta>`, so it applies only at `h = 0`, where that comparison is an identity. The docstring now states that scope. Comment-only in Lean; `lake build` clean, `audit_gate.py --full` PASS, header-claim ratchet 151/79 unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…he distance The row's trailing clause "does not imply it at smaller rho" attaches, on its nearest-antecedent reading, to the example radius 2*dist x z, where it is false: the rate ratio (-log tanh(beta*J))/(-log(beta*J*2d)) stays below 1.54 on the window, so every rho in [dist*ratio, 2*dist) already discharges the binder. Attach the negation to the criterion itself, and state the 2*dist reduction at the radius where it is an equivalence rather than as the criterion at large. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
phasetr
marked this pull request as ready for review
August 11, 2026 15:35
phasetr
added a commit
that referenced
this pull request
Aug 12, 2026
… pinpoints) (#5033) docs(errata): PR-A of #5032 — mechanical citation re-anchoring (items 1/2/3/4/5b/6) What: re-anchors 55 doc-comment / `docs/index.md` citation sites across 20 files to their correct source (Aizenman 1982 §2/§3/§9, GJ Cor 4.3.4 p. 62, GJ Thm 4.1.3 for GKS-II, FFS eqs. (9.35)/(9.36) as displayed equations not theorems, plus 2 pre-existing GKS-II/GJ-Prop-4.2.1 mislabels), plus a proactive adjunct sweep of the same Aizenman-§4 misattribution class found while touching the random-current tree (10 lines / 2 files, none of items 1-6's enumerated sites). Two round-1-review fixes are folded in: a line-break-straddling `§4` residue in `SourcefreeConnectionEdgeEmptyLeg.lean` and a double `Eqs. (4.3)-(4.10)` fragment on `docs/index.md:1780`. Comment/prose only — verified byte-identical after Lean-comment stripping on all 19 changed `.lean` files; no proof term, statement, or import changed (AC4). Deliberately excluded (PR-B's scope, per the #5032 scoping freeze): item 5 (FV "Prop 9.31", 31 lines/13 files — Friedli-Velenik does not contain this result at all) and item 7f (GJ §5.1 mislabeled as the Simon-Lieb anchor, 28 lines — Glimm-Jaffe never states the Simon-Lieb inequality either). Both require a `dev-research` dispatch to establish the correct primary-literature anchor before any line is edited, which is a content decision, not a clerical one. Also excluded and recorded for PR-B, found during this PR's round-2 review: Med-3 (8 `docs/index.md` rows, lines 1772-1781, now pin a stale `Lemma 9.2/9.3, §9` anchor after this PR's Lean-header re-anchoring moved the underlying modules elsewhere — needs row-by-row resolution, not a blanket replace, since the same anchor is correct on the separate `ClusterConditioning*` rows) and Low-3 (FFS "Ch. 12" used as a descriptor for backbone-tail/OZ material the chapter does not contain — needs the FFS PDF extracted first). Why: three prior campaign PRs (#5030, #5031) left this misattribution class under-inventoried (#5032's fresh `rg` found the correction comments' "28 sites" for item 1 was itself an undercount by 9, and item 4's "8 lines" missed a continuation line) and the citations point readers checking the proof sketches against the wrong theorem numbers, equation ranges, and even the wrong book. #5032's scoping freeze fixed the counts and split the 9-item inventory into a mechanical PR (this one, correct target already established) and a research-gated PR (PR-B, correct target requires reading primary literature). Verified: 2 independent review rounds (`dev-review` + Codex `codex exec`, full agreement both rounds, zero divergence) each re-checked every new anchor against the primary PDFs directly (Aizenman 1982, GJ, FFS), reran a line-break-insensitive 6-class residue scan (0/0/0/0/0/0 at HEAD vs. 37/11/8/15/8/4 on main), reran AC4 comment-only diffing, and reran the anti-scope-creep gates (`9.31` 31->31, `§5.1` 221->221, `3.45` 111->110 with only the permitted site changed). `lake build` green (4944 jobs, 0 warnings), `scripts/citation_audit.py` and `scripts/audit_gate.py --full` both PASS, zero Japanese characters in public docs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
phasetr
added a commit
that referenced
this pull request
Aug 13, 2026
docs: replace declaration provenance with semantic references Resolve the remaining portions of #5019 and #5026 by removing workflow step numbers, issue IDs, and PR numbers from declaration documentation. Declaration docs now describe current semantic dependencies instead of the change sequence that introduced them. Where a dependency matters, replace the opaque provenance with its theorem name, including freeEnergyAlongExhaustion_le_uniform_upper_bound, freeEnergyInfinite_high_temp_h_zero_deviation_bound_exp, log_partitionFunction_sum, and log_partitionFunction_map_equiv. Preserve the Glimm-Jaffe section/theorem attribution and all mathematical explanations. The live-main Analyticity population was 26 rather than the original 31 because #5030 had already rewritten part of it. The AmbientLatticeSum sweep also found the same defect class in adjacent InducedUnion and PerStageIncrement docs, so clean those direct layer dependencies in this commit. The final bounded scan of AmbientLattice/Analyticity*.lean, AmbientLatticeSum/, and the AmbientLatticeSum root modules contains no PR, issue, bare task, or Step-number provenance. Also resolve #5026 E4: delete the source-local "partial to Done" progress transition, and replace the stale promise of future translation-invariant instances with the current DisjointTowerHypotheses.of_J_zero and DisjointTowerHypotheses.of_beta_zero constructors and the general direct-field route. Progress status remains owned by docs/index.md. History inspection via git log -S and blame shows this prose was carried through the Analyticity split at 922a5b2 and AmbientLatticeSum splits at 01e6f84 and 1002f3a3. No Lean term, declaration signature, import, or dependency changes. An independent first review caught E4 as an omitted issue criterion. After the fix, a second exact-head review passed with no actionable finding. Verification: Nix lake build IsingModel passed all 4943 jobs; the full audit passed over 1921 Lean files with all 13 capstones limited to propext, Classical.choice and Quot.sound; the header ratchet remained 150/79; bounded provenance searches and git diff --check passed; independent exact-head review reported no actionable finding.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
PR 1 of 2 in the capped errata-correction window authorized per Codex's final ruling in
.self-local/reports/dev-review-4984-post-triage-remainder.md(item 1: "scope down andAUTHORIZE NOW, hard cap 2 PRs / ~12-20 h"). This PR corrects false/misleading substantive prose
(declaration docs, module headers,
docs/index.md) found during the #4984 header-rewritecampaign. It does not touch declaration deletion, renaming, imports, umbrellas, D1/#5028, or any
mechanical citation population (those are excluded per the ruling and/or handled elsewhere).
Scope (verified live against merge base
532fe328a9bcf67d9797790ae07052cc310d3439beforescaffolding)
vdas "van-den-Berg" instead of "vertex-disjoint", and carry zero ratchet charges so no wave will reach them #4987 — whole issue: six merged headers expandvdas "van-den-Berg" instead of"vertex-disjoint"; zero ratchet charges so no wave will reach them.
(gated refactoring, out of scope here per the issue's own post-campaign-triage comment); only
the false-documentation claim in scope (portion B of the 2026-08-11 disposition).
and Part 3 stay PARKED).
with the inverse correlation length, one self-contradictory inside
docs/index.md.FourPoint.lean:373's "(non-vanishing)" closed-form claim is false ath = 0(upstream twin of the defect PR wave 9 of 16 #5006 fixed for M2)._pow_two_lt_of_nonemptywrapper that takes no nonemptiness hypothesis, plus its doc comment (wave 10a scope) #5011 — documentation portion only (item 2 of the issue's own disposition comment, the doccomment asserting a hypothesis its statement does not carry; items 1 and 3 stay PARKED).
cardinality identity,
J=0mislabelled as infinite temperature, unproved susceptibility bound,nonexistent mathlib lemma cited).
/--declaration-doc defects in AmbientLattice/Analyticity* (found in #4984 wave 12) #5019 — sub-findings E2-E3 only (E2: malformed bold marker inAnalyticityLambdaCapstones.lean; E3: informal shorthandspFE/ε(t)/vdSumthat resolve tono repo
def). E1 (task-ID/PR-number references in declaration docs) is excluded from this PR.ExpBounds.leancalls a genericSimpleGraph Vtheorem a "ℤ^d wrapper" (wave-11 inverted-vocabulary defect, found in #4984 wave 13) #5022 — whole issue:ExpBounds.leancalls a genericSimpleGraph Vtheorem a "ℤ^d wrapper"(inverted-vocabulary defect).
/--doc-comment defects in the AmbientLatticeSum layer (found in wave 15 of #4984) #5026 — sub-findings E1-E2 only (E1: a bound advertised as strictly sharper than one it isnumerically equal to; E2: "ratio bound" naming/prose on statements that bound a difference). E3
(task-ID/PR-number references) is excluded from this PR.
Exclusions (binding, per the ruling)
No declaration deletion or rename, no import/umbrella changes, no D1/#5028 work, no
PR #Nprovenance cleanup, no corpus-wide audit, no new scanners/gates/baselines, no blanket
substitutions, no third PR.
Review history (4 rounds; per-round dev-review reports and codex cross-review logs under
.self-local/reports/)dev-review-errata-pr1-round1.md, head6d98659a): CHANGES REQUESTED, 3 High(H1
docs/index.md:1901title/body self-contradiction at the feat(gj-17.5.1): UNCONDITIONAL faithful correlation profile lower bound on the window — #4320 #4333 row, H2 false "never by anequality" claim at the same row, H3 a false universal-negative claim in
MagnetizationInfiniteSusceptibility.lean:50-51) + 2 Med + 6 Low found and fixed infollow-up.
dev-review-errata-pr1-round2.md, head865325e1): CHANGES REQUESTED, 2 Med, 0High — both self-inflicted by round-1's rewrite (new ambiguity/overstatement introduced while
fixing the High items) — found and fixed.
dev-review-errata-pr1-round3.md): CHANGES REQUESTED, 1 Med, 0 High — anambiguous comparator phrase ("smaller
ρ") whose nearest anchor made the clause false — foundand fixed.
dev-review-errata-pr1-round4.md, head9a477386): APPROVE, 0 High, 0 Med, 2non-blocking Low left deliberately unfixed per the reviewer's own recommendation (four rounds of
re-editing the same sentence risks introducing a fresh nit; the current text is not false — both
Lows are scoping-precision nits, independently confirmed by codex as Low/downgraded-from-Med).
Independent codex cross-review ran and concurred at every round (round 4: 1 Med + 1 Low raised,
the Med re-derived and downgraded to Low with no factual disagreement, see round-4 report §7).
Evidence all gates pass (round 4, re-derived from Lean sources, head
9a477386)lake build: green, zerowarning:, zeroerror:(round-4 §5's AC4 byte-identity argumentmakes this a corollary — see below — and
gh pr checks 5030on this exact head is green:buildpass,evaluatepass,header-inventory-claim-ratchetpass,import-dag-contractpass,completion-claim/livepass,discoverpass).scripts/header_inventory_claim_ratchet.py --check: baseline 151 charges / 79 keys, live151 / 79, PASS, unchanged from the merge base through all 4 rounds (no charged key touched by
this PR's diff).
(nested
/- -/,--, string/char literal handling) — 28/28 Lean files byte-identical in codebetween
mainandHEAD; 0 code changes; comment nesting balances in every file. The onlynon-Lean file touched is
docs/index.md(prose only).distinct) resolves to a token present under
IsingModel/; zero dangling citations introduced.rg "[ぁ-んァ-ン一-龯]" docs/index.md README.md→ 0 matches.audit_gate.py --full/citation_audit.py: not re-run in round 4 (risk bounded to zero bythe AC4 byte-exactness result above — comment-only diff cannot change axioms/sorry/admit
surface); last run green on
d689e6d1per the Errata: 4 further pairs of alpha-identical declarations in the LGC Complex layer, 2 doc comments stating hypotheses their statements do not carry, and a stale import-preservation note #5002 mirror disposition, and CI's ownbuildjob (which includes the full lake build) passed on this exact head.
IsingModel/**.leancomment-only +docs/index.mdprose),1:1 mapping to the 10 authorized issues verified in round 1 and re-verified whole-PR in round 4
(no file outside the 10-issue scope; no
scripts/, no baselines, no new/deleted/renamed files).Test plan
grep -rn "sorry" IsingModel/stays empty (doc-only edits; no proof-term changes).#print axiomsverified perlean-verify-audit(green, see above).dev-cross-cli-review, codex exec) ran at every round; concurred.in round 4 (issue-body numbers in this campaign have repeatedly been found stale).
Refs #4987
Refs #5000
Refs #5002
Refs #5005
Refs #5008
Refs #5011
Refs #5017
Refs #5019
Refs #5022
Refs #5026